<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of final_evaluations_controller
 *
 * @author wilavel
 */
class FinalEvaluationsController extends AppController {

    //put your code here
    var $name = "FinalEvaluations";

    public function index() {
        if ($this->RequestHandler->isAjax()) {
            $this->layout = "ajax";
        } else {
            $this->layout = "default";
        }

        $this->FinalEvaluation->recursive = 0;

        $proyect_id = $this->Session->read('proy_id');
        $codigo = $this->Session->read('cod');
        $this->set('codigo', $codigo);
        if ($proyect_id == "") {
            $this->Session->setFlash('No ha seleccionado Proyecto', 'flash_custom');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        } else {
            $proyect = new Proyect();
            $proyect->recursive = -1;
            $publicacion = $proyect->find('first', array('conditions' => array('Proyect.id' => $proyect_id), 'fields' => array('Proyect.publicado', 'Proyect.fecha_publicacion', 'Proyect.estado')));
            $this->set('proyect_id', $proyect_id);
            $this->set('publicacion', $publicacion);
            $this->set('evaluaciones', $this->FinalEvaluation->find('all', array('conditions' => array('FinalEvaluation.proyect_id' => $proyect_id), 'fields' => array('User.username', 'User.nombre', 'User.primer_apellido', 'User.segundo_apellido', 'Proyect.codigo', 'FinalEvaluation.id', 'FinalEvaluation.archivo_notificacion', 'FinalEvaluation.calificacion_anexos', 'FinalEvaluation.calificacion_elegibilidad_integral', 'FinalEvaluation.proyect_id', 'FinalEvaluation.calificacion_ubicacion', 'FinalEvaluation.calificacion_area_util', 'FinalEvaluation.calificacion_suelos', 'FinalEvaluation.calificacion_claseV', 'FinalEvaluation.calificacion_mejoras_santuarias', 'FinalEvaluation.calificacion_aspectos_productivos', 'FinalEvaluation.calificacion_aspectos_sociales', 'FinalEvaluation.calificacion_aspectos_financieros', 'FinalEvaluation.calificacion_aspectos_ambientales'), 'order' => array('FinalEvaluation.id DESC'))));
        }
    }

    function add($proyect_id) {
        $this->set('proyect_id', $proyect_id);
        //Se carga la informacion de la evaluacion anterior
        $this->FinalEvaluation->recursive = -1;
        $this->data = $this->FinalEvaluation->find('first', array('conditions' => array('FinalEvaluation.proyect_id' => $proyect_id), 'order' => array('FinalEvaluation.id DESC')));

        $this->data['FinalEvaluation']['user_id'] = $this->Auth->user('id');
        $this->data['FinalEvaluation']['proyect_id'] = $proyect_id;

        //si existe una evaluacion anterior

        if (!empty($this->data['FinalEvaluation']['id']))
            $anterior_id = $this->data['FinalEvaluation']['id'];

        unset($this->data['FinalEvaluation']['id']);

        //Creamos un objeto predio para poder obtener el ultimo avaluo de cada predio.

        App::Import('model', 'Property');
        $property = new Property();
        $property->recursive = -1;
        $predios = $property->find('all', array('conditions' => array('Property.proyect_id' => $proyect_id), 'fields' => array('Property.id')));

        //verifico que cada predio tenga al menos un avaluo y un plano topografico.
        $crearEvaluacionFinal = true;
//        Esta variable se utilizara para saber si se permite o no la creacion de una evaluacion inicial
        foreach ($predios as $predio) {
            //busco el ultimo avaluo por cada predio y lo agrego a la tabla initial_evaluation_annexes
            App::Import('model', 'EvaluationAppraisals');
            $avaluo = new EvaluationAppraisal();
            //Cuento cuantos avaluos tiene el predio
            $cantidadAvaluos = $avaluo->find('count', array('conditions' => array('EvaluationAppraisal.property_id' => $predio['Property']['id'])));

            //Cuento cuantos planos topograficos tiene el predio
            App::Import('model', 'TopographicMap');
            $planoTopografico = new TopographicMap();
            //buscar el ultimo plano topografico del predio
            $cantidadPlanos = $planoTopografico->find('count', array('conditions' => array('TopographicMap.property_id' => $predio['Property']['id'])));

            if ($cantidadAvaluos < 1 or $cantidadPlanos < 1) {
                $crearEvaluacionFinal = false;
            }
        }

        if ($crearEvaluacionFinal) {
            if ($this->FinalEvaluation->saveAll($this->data)) {
                $last_id = $this->FinalEvaluation->getInsertID();
                if (!empty($anterior_id)) {
                    // Buscamos las lineas productivas de la  anterior evaluacion
                    $this->FinalEvaluation->FinalProductiveLine->recursive = -1;
                    $lineas = $this->FinalEvaluation->FinalProductiveLine->find('all', array('conditions' => array('FinalProductiveLine.final_evaluation_id' => $anterior_id)));
                    foreach ($lineas as $linea) {
                        $this->FinalEvaluation->FinalProductiveLine->create();
                        unset($linea['FinalProductiveLine']['id']);
                        $linea['FinalProductiveLine']['final_evaluation_id'] = $last_id;
                        $this->FinalEvaluation->FinalProductiveLine->save($linea);
                    }

                    // Buscamos las preguntas de aspectos sociales ,financieros etc  de la  anterior evaluacion
                    $this->FinalEvaluation->FinalEvaluationAnswer->recursive = -1;
                    $respuestas = $this->FinalEvaluation->FinalEvaluationAnswer->find('all', array('conditions' => array('FinalEvaluationAnswer.final_evaluation_id' => $anterior_id)));
                    foreach ($respuestas as $respuesta) {
                        $this->FinalEvaluation->FinalEvaluationAnswer->create();
                        unset($respuesta['FinalEvaluationAnswer']['id']);
                        $respuesta['FinalEvaluationAnswer']['final_evaluation_id'] = $last_id;
                        $this->FinalEvaluation->FinalEvaluationAnswer->saveAll($respuesta);
                    }
                    // Buscamos las contrapartidas de la anterior evaluacion
                    $this->FinalEvaluation->Counterpart->recursive = -1;
                    $contrapartidas = $this->FinalEvaluation->Counterpart->find('all', array('conditions' => array('Counterpart.final_evaluation_id' => $anterior_id)));
                    foreach ($contrapartidas as $contrapartida) {
                        $this->FinalEvaluation->Counterpart->create();
                        unset($contrapartida['Counterpart']['id']);
                        $contrapartida['Counterpart']['final_evaluation_id'] = $last_id;
                        $this->FinalEvaluation->Counterpart->saveAll($contrapartida);
                    }
                    // Buscamos los condicionamientos de la anterior evaluacion
                    $this->FinalEvaluation->EvaluationConstraint->recursive = -1;
                    $condicionamientos = $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $anterior_id)));
                    foreach ($condicionamientos as $condicionamiento) {
                        $this->FinalEvaluation->EvaluationConstraint->create();
                        unset($condicionamiento['EvaluationConstraint']['id']);
                        $condicionamiento['EvaluationConstraint']['final_evaluation_id'] = $last_id;
                        $this->FinalEvaluation->EvaluationConstraint->saveAll($condicionamiento);
                    }
                }

                //En este for se asocian las evaluaciones  iniciales con cada avaluo hecho
                foreach ($predios as $predio) {
                    $avaluo = $property->EvaluationAppraisal->find('first', array('conditions' => array('EvaluationAppraisal.property_id' => $predio['Property']['id']), 'order' => array('EvaluationAppraisal.id DESC')));
                    $plano = $property->TopographicMap->find('first', array('conditions' => array('TopographicMap.property_id' => $predio['Property']['id']), 'order' => array('TopographicMap.id DESC')));
                    if (!empty($avaluo['EvaluationAppraisal']['id'])) {
                        $datos = array();
                        $datos['FinalEvaluationAnnex']['final_evaluation_id'] = $last_id;
                        $datos['FinalEvaluationAnnex']['evaluation_appraisal_id'] = $avaluo['EvaluationAppraisal']['id'];
                        $datos['FinalEvaluationAnnex']['topographic_map_id'] = $plano['TopographicMap']['id'];
                        $this->FinalEvaluation->FinalEvaluationAnnex->create();
                        if ($this->FinalEvaluation->FinalEvaluationAnnex->saveAll($datos)) {
                            $this->Session->setFlash('Faltan registros en avalúos o plano topográfico', 'flash_custom');
                        }
                    }
                }

                $this->Session->setFlash('Registro creado exitosamente', 'flash_custom');
                $this->redirect(array('controller' => 'FinalEvaluations', 'action' => 'index'));
            }
        } else {
            $this->Session->setFlash('Para poder crear una evaluación final se debe crear antes un plano topográfico y un avalúo por cada predio del proyecto.');
            $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
        }
    }

    function edit($final_evaluation_id, $proyect_id) {
        $this->set('usuario', $this->Auth->user());
        $this->set('proyect_id', $proyect_id);
        $this->set('final_evaluation_id', $final_evaluation_id);

        //obtenemos datos de convocatorias 
        $options['joins'] = array(
            array(
                'table' => 'calls',
                'alias' => 'Call',
                'type' => 'left',
                'conditions' => array('Proyect.call_id=Call.id')
            ),
            array(
                'table' => 'proposers',
                'alias' => 'Proposer',
                'type' => 'left',
                'conditions' => array('Proyect.id=Proposer.proyect_id')
            )
        );
        $options['fields'] = array('Call.*', 'Proyect.predio_valor', 'Proposer.nombre', 'Proposer.direccion', 'Proposer.telefono_fijo', 'Proposer.telefono_celular', 'Proposer.numero_identificacion', 'Proposer.rep_nombres', 'Proposer.rep_cedula', 'Proposer.rep_apellidos');
        $options['conditions'] = array('Proyect.id' => $proyect_id);
        $this->FinalEvaluation->Proyect->recursive = -1;
        $convocatoria = $this->FinalEvaluation->Proyect->find('first', $options);

        if (empty($this->data)) {
            $codigo = $this->FinalEvaluation->Proyect->field('codigo', array('Proyect.id' => $proyect_id));

            $rutaMuf = APP . "webroot" . "/" . "files" . "/" . $codigo . "/" . 'Muf-' . $codigo . "-" . $final_evaluation_id;
            if (file_exists($rutaMuf . ".xls")) {
                $this->set("rutaMuf", "files" . "/" . $codigo . "/" . 'Muf-' . $codigo . "-" . $final_evaluation_id . ".xls");
            } elseif (file_exists($rutaMuf . "xlsx")) {
                $this->set("rutaMuf", "files" . "/" . $codigo . "/" . 'Muf-' . $codigo . "-" . $final_evaluation_id . ".xlsx");
            }
            $this->set('convocatoria', $convocatoria);
            //Obtenemos las suma del area de planos y del  valor del avaluo
            $area_plano = 0;
            $valor_predios = 0;
            $valor_negociacion = 0;
            $this->FinalEvaluation->Proyect->Property->recursive = -1;
            $predios = $this->FinalEvaluation->Proyect->Property->find('all', array('conditions' => array('Property.proyect_id' => $proyect_id), 'fields' => array('Property.id', 'Property.valor_negociacion')));
            //$this->FinalEvaluation->Proyect->Property->TopographicMap->recursive = -1;
            foreach ($predios as $predio) {

                $this->FinalEvaluation->Proyect->Property->recursive = -1;

                $options = array();
                $options['joins'] = array(
                    array(
                        'table' => 'topographic_maps',
                        'type' => 'left',
                        'alias' => 'TopographicMap',
                        'conditions' => array('TopographicMap.property_id=Property.id')
                    ),
                    array(
                        'table' => 'final_evaluation_annexes',
                        'type' => 'left',
                        'alias' => 'FinalEvaluationAnnexes',
                        'conditions' => array('TopographicMap.id=FinalEvaluationAnnexes.topographic_map_id')
                    ),
                );
                $options['conditions'] = array('FinalEvaluationAnnexes.final_evaluation_id' => $final_evaluation_id, 'Property_id' => $predio['Property']['id']);
                $options['fields'] = array('TopographicMap.area');
                $area = $this->FinalEvaluation->Proyect->Property->find('first', $options);
                //Se busca el valor del avaluo relacionado con la evaluacion final
                $options = array();
                $options['joins'] = array(
                    array(
                        'table' => 'evaluation_appraisals',
                        'type' => 'left',
                        'alias' => 'EvaluationAppraisal',
                        'conditions' => array('EvaluationAppraisal.property_id=Property.id')
                    ),
                    array(
                        'table' => 'final_evaluation_annexes',
                        'type' => 'left',
                        'alias' => 'FinalEvaluationAnnexes',
                        'conditions' => array('EvaluationAppraisal.id=FinalEvaluationAnnexes.evaluation_appraisal_id')
                    ),
                );
                $options['conditions'] = array('FinalEvaluationAnnexes.final_evaluation_id' => $final_evaluation_id, 'Property_id' => $predio['Property']['id']);
                $options['fields'] = array('EvaluationAppraisal.valor');
                $valor = $this->FinalEvaluation->Proyect->Property->find('first', $options);

                $area_plano+=$area['TopographicMap']['area'];
                $valor_predios+=$valor['EvaluationAppraisal']['valor'];
                $valor_negociacion = $predio['Property']['valor_negociacion'];
            }
            if (( $convocatoria['Proyect']['predio_valor'] != 0)) {
                $this->set('valor_negociacion', $convocatoria['Proyect']['predio_valor']);
            } else {
                $this->set('valor_negociacion', $valor_negociacion);
            }

            $this->set('area_plano', $area_plano);
            $this->set('valor_predios', $valor_predios);

            //Obtenemos la suma de las contrapartidas
            $this->FinalEvaluation->Counterpart->recursive = 1;
            $this->set('final_evaluation_id', $final_evaluation_id);
            $this->set('contrapartida_proyecto', $this->FinalEvaluation->Counterpart->field('sum(Counterpart.valor)', array('Counterpart.final_evaluation_id' => $final_evaluation_id, 'Counterpart.clase' => 'Proyecto')));
            $this->set('contrapartida_predios', $this->FinalEvaluation->Counterpart->field('sum(Counterpart.valor)', array('Counterpart.final_evaluation_id' => $final_evaluation_id, 'Counterpart.clase' => 'Predio')));

            $this->data = $this->FinalEvaluation->find('first', array('conditions' => array('FinalEvaluation.id' => $final_evaluation_id)));

            //DATOS DE LAS FAMILIAS INSCRITAS 
            $this->FinalEvaluation->Proyect->Candidate->recursive = -1;
            $principales = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $this->data['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 1, 'Candidate.estado_filtro' => array(1, 5, 6))));
            $suplentes = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $this->data['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 2, 'Candidate.estado_filtro' => array(1, 5, 6))));
            $inscritas = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $this->data['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0)));
            $this->set('principales', $principales);
            $this->set('suplentes', $suplentes);
            $this->set('inscritas', $inscritas);
        } else {


            if (isset($this->data['FinalEvaluation']['familias_habilitadas'])) {
                if ($this->data['FinalEvaluation']['familias_habilitadas'] != 0) {
                    $subsido_maximo_predios = $convocatoria['Call']['smmv_predios'] * $convocatoria['Call']['valor_smmv'] * $this->data['FinalEvaluation']['familias_habilitadas'];
                    $subsido_maximo_proyecto = $convocatoria['Call']['smmv_proyecto'] * $convocatoria['Call']['valor_smmv'] * $this->data['FinalEvaluation']['familias_habilitadas'];

                    if ($subsido_maximo_proyecto <= $this->data['FinalEvaluation']['subsidio_proyecto_propuesto']) {
                        $this->data['FinalEvaluation']['subsidio_proyecto_real'] = $subsido_maximo_proyecto;
                    } else {
                        $this->data['FinalEvaluation']['subsidio_proyecto_real'] = $this->data['FinalEvaluation']['subsidio_proyecto_propuesto'];
                    }

                    //buscamos el valor menor entre avaluo,negociacion y el propuesto en el proyecto productivo 
                    $minimo = 0;
                    $minimo = $subsido_maximo_predios;
                    if ($this->data['FinalEvaluation']['subsidio_predios_propuesto'] <= $minimo) {
                        $minimo = $this->data['FinalEvaluation']['subsidio_predios_propuesto'];
                    } if ($this->data['FinalEvaluation']['valor_avaluo'] <= $minimo) {
                        $minimo = $this->data['FinalEvaluation']['valor_avaluo'];
                    } if ($this->data['FinalEvaluation']['valor_negociacion'] <= $minimo) {
                        $minimo = $this->data['FinalEvaluation']['valor_negociacion'];
                    }

                    $this->data['FinalEvaluation']['subsidio_predios_real'] = $minimo;
                }
            }

            if ($this->FinalEvaluation->saveAll($this->data)) {
                $this->Session->setFlash('Registro editado exitosamente', 'flash_custom');
                $this->redirect(array('controller' => 'FinalEvaluations', 'action' => 'edit', $final_evaluation_id, $proyect_id));
            }
        }
    }

    function delete($id) {
        if ($this->FinalEvaluation->delete($id, true)) {
            $this->Session->setFlash('Registro borrado exitosamente', 'flash_custom');
            $this->redirect(array('controller' => 'FinalEvaluations', 'action' => 'index'));
        }
    }

    function print_letter($final_evaluation_id) {
        $this->layout = "pdf";
        $this->FinalEvaluation->recursive = 0;
        $this->set('final_evaluation_id', $final_evaluation_id);
        $evaluacion = $this->FinalEvaluation->find('first', array('conditions' => array('FinalEvaluation.id' => $final_evaluation_id), 'fields' => array('FinalEvaluation.*', 'User.nombre', 'User.primer_apellido', 'User.segundo_apellido')));
        $this->FinalEvaluation->Proyect->recursive = -1;
        $proyecto = $this->FinalEvaluation->Proyect->find('first', array(
            'conditions' => array(
                'Proyect.id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'calls', 'type' => 'left', 'alias' => 'Call', 'conditions' => array('Call.id=Proyect.call_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=Proyect.departament_id')),
            ),
            'fields' => array('Proyect.codigo', 'Proyect.id', 'Proyect.publicado', 'Call.nombre', 'Departament.name')));
        $this->FinalEvaluation->Proyect->Proposer->recursive = -1;
        $proponente = $this->FinalEvaluation->Proyect->Proposer->find('first', array(
            'conditions' => array(
                'Proposer.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'cities', 'type' => 'left', 'alias' => 'City', 'conditions' => array('City.id=Proposer.city_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=City.departament_id')),
            ),
            'fields' => array('Proposer.*', 'City.name', 'Departament.name')));
        $this->FinalEvaluation->Proyect->Property->recursive = -1;
        $predios = $this->FinalEvaluation->Proyect->Property->find('all', array(
            'conditions' => array(
                'Property.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'cities', 'type' => 'left', 'alias' => 'City', 'conditions' => array('City.id=Property.city_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=City.departament_id')),
            ),
            'fields' => array('Property.codigo', 'Property.codigo', 'Property.codigo', 'Property.nombre', 'Property.vereda', 'Property.codigo', 'Property.matricula', 'Property.area_titulo', 'Property.id', 'City.name', 'Departament.name')));
        //condicionamientos Juridicos
        $this->FinalEvaluation->EvaluationConstraint->recursive = 1;
        $this->set('juridicos', $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $final_evaluation_id, 'Constraint.tipo' => 'Juridico'), 'fields' => array('EvaluationConstraint.id', 'EvaluationConstraint.descripcion', 'Constraint.nombre'))));
        $this->set('condicionamientos', $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $final_evaluation_id, 'Constraint.tipo' => 'Proyecto'), 'fields' => array('EvaluationConstraint.id', 'EvaluationConstraint.descripcion', 'Constraint.nombre'))));
        //DATOS DE LAS FAMILIAS INSCRITAS 
        $this->FinalEvaluation->Proyect->Candidate->recursive = -1;
        $principales = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 1)));
        $suplentes = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 2)));
        $habilitadas = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.estado_filtro' => array(1, 5, 6), 'Candidate.candidate_id' => 0)));
        $this->set('principales', $principales);
        $this->set('suplentes', $suplentes);
        $this->set('habilitadas', $habilitadas);
        ///DATOS DE LAS CONTRAPARTIDAS
        $this->set("contapartidas_certificadas_predio", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_otra_predio", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_certificadas_proyecto", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_otra_proyecto", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        //DATOS DE LA ENCUESTA DE FASE II
        $this->FinalEvaluation->Proyect->Poll->recursive = -1;
        $encuesta = $this->FinalEvaluation->Proyect->Poll->find('first', array('conditions' => array('Poll.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']), 'fields' => array('Poll.id', 'Poll.calificacion_caracteristicas_biofisicas', 'Poll.calificacion_sociales', 'Poll.calificacion_economicos', 'Poll.calificacion_ambientales', 'Poll.visto_bueno', 'Poll.verificacion_fase_uno')));
        $calificacion_encuesta = "Cumple";
        if ($encuesta['Poll']['calificacion_caracteristicas_biofisicas'] != "CUMPLE" || $encuesta['Poll']['calificacion_sociales'] != "CUMPLE" || $encuesta['Poll']['calificacion_economicos'] != "CUMPLE" || $encuesta['Poll']['calificacion_ambientales'] != "CUMPLE" || $encuesta['Poll']['visto_bueno'] != "Si" || $encuesta['Poll']['verificacion_fase_uno'] != "Si") {
            $calificacion_encuesta = "No cumple";
        }

        $this->set('proyecto', $proyecto);
        $this->set('calificacion_encuesta', $calificacion_encuesta);
        $this->set('proponente', $proponente);
        $this->set('predios', $predios);
        $this->set('evaluacion', $evaluacion);
    }

    function print_notification($final_evaluation_id) {
        $this->layout = 'pdf';
        $this->FinalEvaluation->recursive = 0;
        $this->set('final_evaluation_id', $final_evaluation_id);
        $evaluacion = $this->FinalEvaluation->find('first', array('conditions' => array('FinalEvaluation.id' => $final_evaluation_id), 'fields' => array('FinalEvaluation.*', 'User.nombre', 'User.primer_apellido', 'User.segundo_apellido')));
        $this->FinalEvaluation->Proyect->recursive = -1;
        $proyecto = $this->FinalEvaluation->Proyect->find('first', array(
            'conditions' => array(
                'Proyect.id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'calls', 'type' => 'left', 'alias' => 'Call', 'conditions' => array('Call.id=Proyect.call_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=Proyect.departament_id')),
                array('table' => 'branches', 'type' => 'left', 'alias' => 'Branch', 'conditions' => array('Branch.id=Proyect.branch_id')),
            ),
            'fields' => array('Proyect.codigo', 'Proyect.id', 'Proyect.publicado', 'Call.nombre', 'Departament.name', 'Branch.director', 'Branch.nombre')));
        $this->FinalEvaluation->Proyect->Proposer->recursive = -1;
        $proponente = $this->FinalEvaluation->Proyect->Proposer->find('first', array(
            'conditions' => array(
                'Proposer.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'cities', 'type' => 'left', 'alias' => 'City', 'conditions' => array('City.id=Proposer.city_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=City.departament_id')),
            ),
            'fields' => array('Proposer.*', 'City.name', 'Departament.name')));
        $this->FinalEvaluation->Proyect->Property->recursive = -1;
        $predios = $this->FinalEvaluation->Proyect->Property->find('all', array(
            'conditions' => array(
                'Property.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']
            ),
            'joins' => array(
                array('table' => 'cities', 'type' => 'left', 'alias' => 'City', 'conditions' => array('City.id=Property.city_id')),
                array('table' => 'departaments', 'type' => 'left', 'alias' => 'Departament', 'conditions' => array('Departament.id=City.departament_id')),
            ),
            'fields' => array('Property.codigo', 'Property.codigo', 'Property.codigo', 'Property.nombre', 'Property.vereda', 'Property.codigo', 'Property.matricula', 'Property.area_titulo', 'Property.id', 'City.name', 'Departament.name')));
        //condicionamientos Juridicos
        $this->FinalEvaluation->EvaluationConstraint->recursive = 1;
        $this->set('juridicos', $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $final_evaluation_id, 'Constraint.tipo' => 'Juridico'), 'fields' => array('EvaluationConstraint.id', 'EvaluationConstraint.descripcion', 'Constraint.nombre'))));
        $this->set('condicionamientos', $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $final_evaluation_id, 'Constraint.tipo' => 'Proyecto'), 'fields' => array('EvaluationConstraint.id', 'EvaluationConstraint.descripcion', 'Constraint.nombre'))));
        //DATOS DE LAS FAMILIAS INSCRITAS 
        $this->FinalEvaluation->Proyect->Candidate->recursive = -1;
        $principales = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 1)));
        $suplentes = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 2)));
        $habilitadas = $this->FinalEvaluation->Proyect->Candidate->find('count', array('conditions' => array('Candidate.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id'], 'Candidate.estado_filtro' => array(1, 5, 6), 'Candidate.candidate_id' => 0)));
        $this->set('principales', $principales);
        $this->set('suplentes', $suplentes);
        $this->set('habilitadas', $habilitadas);
        ///DATOS DE LAS CONTRAPARTIDAS
        $this->set("contapartidas_certificadas_predio", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_otra_predio", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Predio', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_certificadas_proyecto", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Certificada', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        $this->set("contapartidas_otra_proyecto", $this->FinalEvaluation->Counterpart->field('sum(valor)', array('Counterpart.tipo' => 'Otra', 'Counterpart.clase' => 'Proyecto', 'Counterpart.final_evaluation_id' => $final_evaluation_id)));
        //DATOS DE LA ENCUESTA DE FASE II
        $this->FinalEvaluation->Proyect->Poll->recursive = -1;
        $encuesta = $this->FinalEvaluation->Proyect->Poll->find('first', array('conditions' => array('Poll.proyect_id' => $evaluacion['FinalEvaluation']['proyect_id']), 'fields' => array('Poll.id', 'Poll.calificacion_caracteristicas_biofisicas', 'Poll.calificacion_sociales', 'Poll.calificacion_economicos', 'Poll.calificacion_ambientales', 'Poll.visto_bueno', 'Poll.verificacion_fase_uno')));
        $calificacion_encuesta = "Cumple";
        if ($encuesta['Poll']['calificacion_caracteristicas_biofisicas'] != "CUMPLE" || $encuesta['Poll']['calificacion_sociales'] != "CUMPLE" || $encuesta['Poll']['calificacion_economicos'] != "CUMPLE" || $encuesta['Poll']['calificacion_ambientales'] != "CUMPLE" || $encuesta['Poll']['visto_bueno'] != "Si" || $encuesta['Poll']['verificacion_fase_uno'] != "Si") {
            $calificacion_encuesta = "No cumple";
        }

        $this->set('proyecto', $proyecto);
        $this->set('calificacion_encuesta', $calificacion_encuesta);
        $this->set('proponente', $proponente);
        $this->set('predios', $predios);
        $this->set('evaluacion', $evaluacion);
    }

    function upload($evaluation_id, $proyect_id) {
        $this->set('evaluation_id', $evaluation_id);
        $this->set('proyect_id', $proyect_id);
        $this->FinalEvaluation->Proyect->recursive = -1;
        $codigo = $this->FinalEvaluation->Proyect->field('codigo', array('Proyect.id' => $proyect_id));

        if (!empty($this->data)) {
            if (stristr($this->data['FinalEvaluation']['archivo']['name'], "xls") || stristr($this->data['FinalEvaluation']['archivo']['name'], "xlsx")) {
                $rutaArchivo = APP . "webroot" . DS . "files" . DS . $codigo;
                if (!is_dir($rutaArchivo)) {
                    if (!mkdir($rutaArchivo)) {
                        echo "error creando archivo";
                        //redirect
                    }
                }

                if (stristr($this->data['FinalEvaluation']['archivo']['name'], "xls")) {
                    $rutaArchivo.= DS . "Muf-$codigo" . "-" . "$evaluation_id.xls";
                } else {
                    $rutaArchivo.= DS . "Muf-$codigo" . "-" . "$evaluation_id.xlsx";
                }

                if (move_uploaded_file($this->data['FinalEvaluation']['archivo']['tmp_name'], $rutaArchivo)) {
                    $this->Session->setFlash('El archivo fue subido corrrectamente');
                    $this->redirect(array('controller' => 'Pages', 'action' => 'display'));
                }
            } else {
                $this->Session->setFlash('Solo se permiten archivos de excel');
            }
        }
    }

    public function report() {
        App::Import('model', 'EvaluationConstraint');
        App::Import('model', 'QualityControl');
        App::Import('model', 'Property');
        App::Import('Model', 'Poll');
        App::Import('Model', 'Resolution');
        App::Import('model', 'TopographicMap');
        App::Import('model', 'TopographicArea');
        App::Import('model', 'InitialEvaluation');

        $this->layout = 'csv';
        ini_set('max_execution_time', 600); //increase max_execution_time to 10 min if data set is very large
        date_default_timezone_set("America/Bogota");
        $filename = "Estado_Evaluaciones_Finales_" . date("Y.m.d") . ".csv";
        $csv_file = fopen('php://output', 'w');
        header('Content-type: application/csv');
        header('Content-Disposition: attachment; filename="' . $filename . '"');

        $sql = "SELECT b.evaluado_incoder, b.fecha_publicacion, b.publicado, e.valor_smmv ,a.familias_habilitadas,a.tipo_proyecto, a.subsidio_proyecto_real, a.subsidio_predios_real, a.id, b.id, d.nombre, d.primer_apellido, b.codigo, a.calificacion_anexos, a.calificacion_ubicacion,
            a.calificacion_area_util, a.calificacion_suelos, a.calificacion_claseV, a.calificacion_suelos_total, a.calificacion_mejoras_santuarias, a.calificacion_elegibilidad_integral
            FROM `final_evaluations` a
            LEFT JOIN proyects b ON a.proyect_id = b.id
            LEFT JOIN calls e ON e.id = b.call_id
            LEFT JOIN users d ON d.id = a.user_id
            WHERE a.id = ( 
            SELECT MAX( y.id ) AS id
            FROM `final_evaluations` y
            LEFT JOIN proyects x ON x.id = y.proyect_id
            WHERE x.codigo = b.codigo ) 
            GROUP BY b.codigo
            ORDER BY a.id ASC ";

        $results = $this->FinalEvaluation->query($sql);

        // The column headings of your .csv file
        $header_row = array(
            "NOMBRE",
            "PRIMER APELLIDO",
            "CÓDIGO",
            "ÁREA AVALÚO",
            "CALIFICACIÓN ANEXOS",
            "CALIFICACIÓN UBICACIÓN",
            "CALIFICACIÓN ÁREA ÚTIL",
            "CALIFICACIÓN CLASE AGROLÓGICA V",
            "CALIFICACIÓN CLASES VII Y VIII",
            "CALIFICACIÓN SUELOS TOTAL",
            "CALIFICACIÓN MEJORAS SUNTUARIAS",
            "CALIFICACIÓN ASPECTOS PRODUCTIVOS",
            "CALIFICACIÓN ASPECTOS SOCIALES",
            "CALIFICACIÓN ASPECTOS FINANCIEROS",
            "CALIFICACIÓN ASPECTOS AMBIENTALES",
            "TIENE CONDICIONAMIENTOS",
            "HIPOTECA",
            "AFECTACIÓN A VIVIENDA FAMILIAR",
            "DECLARATORIA DE ZONA DE DESPLAZAMIENTO FORZADO",
            "ÁREA EN TÍTULOS",
            "NEGOCIACIÓN",
            "CABIDA FAMILIAR",
            "CALIFICACIÓN ELEGIBILIDAD (CALCULADO)",
            "CALIFICACIÓN ELEGIBILIDAD INTEGRAL (EVALUADOR)",
            "CONTROL CALIDAD ESTUDIOS DE TÍTULOS",
            "CONTROL CALIDAD ESTUDIOS DE TÍTULOS TEXTO",
            "CALIFICACIÓN AVALÚOS",
            "CALIFICACIÓN PLANOS",
            "CALIFICACIÓN PROYECTO PRODUCTIVO",
            "CALIFICACIÓN ENCUESTA",
            "SUBSIDIO PROYECTO",
            "SUBSIDIO PREDIO",
            "NÚMERO FAMILIAS HABILITADAS",
            "SUBSIDIO NOTARIAL",
            "VIABILIDAD INTEGRAL",
            "PUBLICADO",
            "FECHA PUBLICACIÓN",
            "TIPO PROYECTO",
            "ESTADO LEVANTAMIENTOS",
            "REVISIÓN DE PREDIOS FASE III",
            "EVALUADO INCODER",
            "NÚMERO RESOLUCIÓN",
            "FECHA RESOLUCIÓN",
            "ARCHIVO DE NOTIFICACIÓN CARGADO",
            "ARCHIVO RESOLUCIÓN ESCANEADA",
            "ÁREA TOTAL PLANOS",
            "ÁREA PRODUCTIVA TOTAL",
            "ÁREA NO PRODUCTIVA TOTAL",
            "CONTRAPARTIDA PROYECTO",
            "CONTRAPARTIDA PREDIO"
        );

        $newRow = array();

        foreach ($header_row as $a) {
            $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
        }

        fputcsv($csv_file, $newRow, ';', '"');

        $constraints = new EvaluationConstraint();
        $constraints->recursive = -1;
        $properties = new Property();
        $properties->recursive = -1;
        $qualityControls = new QualityControl();
        $qualityControls->recursive = -1;
        $planoTopografico = new TopographicMap();
        $planoTopografico->recursive = -1;
        $AreaPlano = new TopographicArea();
        $AreaPlano->recursive = 0;
        $proyectoProductivo = new InitialEvaluation();
        $proyectoProductivo->recursive = -1;


        foreach ($results as $result) {
            $calificacionFinalControlCalidad = "";
            //se buscan los condicionamientos que pertenezcan a la evaluación
            $condicionamientos = $constraints->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $result['a']['id']), 'order' => array('EvaluationConstraint.id ASC')));
            //se buscan los predios que pertenecen al proyecto
            $propiedades = $properties->find('all', array('conditions' => array('Property.proyect_id' => $result['b']['id']), 'fields' => array('Property.id', 'Property.codigo')));

            $revisionPredios = "Cumple";
            //Revision de predios
            foreach ($propiedades as $predio) {
                //Revision final de predios
                $rpredios = $properties->PropertyFinalReview->find('first', array('conditions' => array('PropertyFinalReview.property_id' => $predio['Property']['id']), 'order' => array('PropertyFinalReview.id DESC'), 'fields' => array('PropertyFinalReview.calificacion')));


                if (empty($rpredios)) {

                    $revisionPredios = "Sin registro";
                } else {

                    if ($rpredios['PropertyFinalReview']['calificacion'] == "Sin registro") {
                        $revisionPredios = "Sin registro";
                    }
                    if ($rpredios['PropertyFinalReview']['calificacion'] == "No cumple") {
                        $revisionPredios = "No cumple";
                    }
                }
            }

            $textoControlCalidad = "";
            foreach ($propiedades as $propiedad) {
                //Busco el ultimo control de calidad que tenga este predio.
                $controlCalidad = $qualityControls->find('first', array('conditions' => array('QualityControl.property_id' => $propiedad['Property']['id']), 'order' => array('QualityControl.id DESC'), 'fields' => array('QualityControl.calificacion')));
                switch ($controlCalidad['QualityControl']['calificacion']) {
                    case 1:
                        $calificacionControlCalidad = "PENDIENTE";
                        if ($calificacionFinalControlCalidad == "" or $calificacionFinalControlCalidad == "CUMPLE")
                            $calificacionFinalControlCalidad = "PENDIENTE";
                        break;
                    case 2:
                        $calificacionControlCalidad = "REQUIERE DOCUMENTO";
                        if ($calificacionFinalControlCalidad == "" or $calificacionFinalControlCalidad == "CUMPLE")
                            $calificacionFinalControlCalidad = "PENDIENTE";
                        break;
                    case 3:
                        $calificacionControlCalidad = "NO CUMPLE";
                        $calificacionFinalControlCalidad = "NO CUMPLE";
                        break;
                    case 4:
                        $calificacionControlCalidad = "CUMPLE";
                        if ($calificacionFinalControlCalidad == "" or $calificacionFinalControlCalidad == "CUMPLE")
                            $calificacionFinalControlCalidad = "CUMPLE";
                        break;
                    default:
                        $calificacionControlCalidad = "NO HA SIDO REVISADO";
                        if ($calificacionFinalControlCalidad == "" or $calificacionFinalControlCalidad == "CUMPLE")
                            $calificacionFinalControlCalidad = "PENDIENTE";
                        break;
                }
                $textoControlCalidad .= "El predio con el codigo " . $propiedad['Property']['codigo'] . " Tiene como calificación " . $calificacionControlCalidad . " ";
            }

            $condicionamiento_hipoteca = "";
            $condicionamiento_afectacion = "";
            $condicionamiento_declaratoria = "";
            $condicionamiento_area = "";
            $condicionamiento_negociacion = "";
            $condicionamiento_cabida = "";
            if (!empty($condicionamientos)) {
                $levantados = "LEVANTADO";
            } else {
                $levantados = "SIN CONDICIONAMIENTOS";
            }

            foreach ($condicionamientos as $condicionamiento) {
                if ($condicionamiento['EvaluationConstraint']['calificacion'] == 'Sin registro' || $condicionamiento['EvaluationConstraint']['calificacion'] == '') {
                    $levantados = "Sin registro";
                }
                if ($condicionamiento['EvaluationConstraint']['calificacion'] == 'NO LEVANTADO') {
                    $levantados = "NO LEVANTADO";
                    break;
                }
            }

            foreach ($condicionamientos as $condicionamiento) {

                switch ($condicionamiento['EvaluationConstraint']['constraint_id']) {
                    case 1:
                        $condicionamiento_hipoteca = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                    case 2:
                        $condicionamiento_afectacion = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                    case 3:
                        $condicionamiento_declaratoria = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                    case 4:
                        $condicionamiento_area = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                    case 5:
                        $condicionamiento_negociacion = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                    case 6:
                        $condicionamiento_cabida = $condicionamiento['EvaluationConstraint']['descripcion'];
                        break;
                }
            }

            //se cuentan los valores de la contrapartida de predio y proyecto
            //Obtenemos la suma de las contrapartidas
            $this->FinalEvaluation->Counterpart->recursive = 1;
            $contrapartida_proyecto = $this->FinalEvaluation->Counterpart->field('sum(Counterpart.valor)', array('Counterpart.final_evaluation_id' => $result['a']['id'], 'Counterpart.clase' => 'Proyecto'));
            $contrapartido_predio = $this->FinalEvaluation->Counterpart->field('sum(Counterpart.valor)', array('Counterpart.final_evaluation_id' => $result['a']['id'], 'Counterpart.clase' => 'Predio'));

            $evaluacion = $this->FinalEvaluation->find('first', array('conditions' => array('FinalEvaluation.id' => $result['a']['id']), 'fields' => array('FinalEvaluation.*'), 'order' => array('FinalEvaluation.id' => 'DESC')));
            $calificacionProyectoProductivo = $proyectoProductivo->field('calificacion_integral', array('proyect_id' => $result['b']['id']), 'id DESC');

            $elegibilidad = "";

            if ($result['a']['calificacion_anexos'] == 'Cumple' and
                    $result['a']['calificacion_ubicacion'] == 'Cumple' and
                    $result['a']['calificacion_area_util'] == 'Cumple' and
                    $result['a']['calificacion_suelos'] == 'Cumple' and
                    $result['a']['calificacion_claseV'] == 'Cumple' and
                    $result['a']['calificacion_suelos_total'] == 'Cumple' and
                    $result['a']['calificacion_mejoras_santuarias'] == 'Cumple' and
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_productivos'] == 'Cumple' and
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_sociales'] == 'Cumple' and
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_financieros'] == 'Cumple' and
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_ambientales'] == 'Cumple'
            ) {
                $elegibilidad = "Cumple";
            } else {
                $elegibilidad = "No cumple";
            }

            $tieneCondicionamientos = "No";
            if ($condicionamiento_area != "" or $condicionamiento_negociacion != "" or $condicionamiento_cabida != ""
                    or $condicionamiento_hipoteca != "" or $condicionamiento_afectacion != "" or $condicionamiento_declaratoria != ""
            ) {
                $tieneCondicionamientos = "Si";
            }
            $property = new Property();
            $property->recursive = -1;
            $predios = $property->find('all', array('conditions' => array('Property.proyect_id' => $result['b']['id']), 'fields' => array('Property.id')));

            //traemos los datos de la resolucion de cada proyecto.
            $resolution = new Resolution();
            $resolution->recursive = -1;
            $numero_resolucion = $resolution->field('Resolution.numero', array('Resolution.proyect_id' => $result['b']['id']), 'Resolution.id DESC');
            $fecha_resolucion = $resolution->field('Resolution.fecha', array('Resolution.proyect_id' => $result['b']['id']), 'Resolution.id DESC');
            $resolucion_id = $resolution->field('Resolution.id', array('Resolution.proyect_id' => $result['b']['id']), 'Resolution.id DESC');

            $calificacion_avaluos = "Cumple";
            $calificacion_planos = "Cumple";

            $areaTotalPlanosTopograficos = 0;
            $areaProductiva = 0;
            $areaNoProductiva = 0;
            foreach ($predios as $predio) {

                $options = array();
                $options['joins'] = array(
                    array(
                        'table' => 'evaluation_appraisals',
                        'type' => 'left',
                        'alias' => 'EvaluationAppraisal',
                        'conditions' => array('EvaluationAppraisal.property_id=Property.id')
                    ),
                    array(
                        'table' => 'final_evaluation_annexes',
                        'type' => 'left',
                        'alias' => 'FinalEvaluationAnnexes',
                        'conditions' => array('EvaluationAppraisal.id=FinalEvaluationAnnexes.evaluation_appraisal_id')
                    ),
                );
                $options['conditions'] = array('FinalEvaluationAnnexes.final_evaluation_id' => $result['a']['id'], 'Property_id' => $predio['Property']['id']);
                $options['fields'] = array('EvaluationAppraisal.valor', 'EvaluationAppraisal.area', 'EvaluationAppraisal.calificacion', 'EvaluationAppraisal.concepto');
                $valor = $property->find('first', $options);

                if ($valor['EvaluationAppraisal']['calificacion'] != 1) {
                    $calificacion_avaluos = "No cumple";
                }

                //busco el ultimo plano topografico que tenga el predio, tomo el valor del área y lo sumo al total del proyecto.
                $areaTotalPlanosTopograficos += $planoTopografico->field('TopographicMap.area', array('TopographicMap.property_id' => $predio['Property']['id']), 'id DESC');

                //se busca el id del  ultimo plano ingreado a este predio.
                $ultimo_plano = $planoTopografico->find('first', array('conditions' => array('TopographicMap.property_id' => $predio['Property']['id']), 'fields' => array('TopographicMap.id', 'TopographicMap.calificacion'), 'order' => array('TopographicMap.id DESC')));
                //Se obtienen las areas productivas y no productivas 

                if ($ultimo_plano['TopographicMap']['calificacion'] != 1) {
                    $calificacion_planos = "No cumple";
                }

                $areaUtil = $AreaPlano->field('Sum(TopographicArea.magnitud)', array('TopographicArea.topographic_map_id' => $ultimo_plano['TopographicMap']['id'], 'AreaType.productiva' => 1));
                $areaProductiva+=$areaUtil;
                $areaNoUtil = $AreaPlano->field('Sum(TopographicArea.magnitud)', array('TopographicArea.topographic_map_id' => $ultimo_plano['TopographicMap']['id'], 'AreaType.productiva' => 0));
                $areaNoProductiva+=$areaNoUtil;
            }


            $criterios_evaluacion = "Cumple";
            if ($evaluacion['FinalEvaluation']['calificacion_anexos'] != 'Cumple' || $evaluacion['FinalEvaluation']['calificacion_ubicacion'] != 'Cumple' || $evaluacion['FinalEvaluation']['calificacion_area_util'] != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_suelos'] != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_claseV'] != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_mejoras_santuarias'] != "Cumple") {
                $criterios_evaluacion = "No cumple";
            }

            $calificacion_encuesta = "Cumple";

            $poll = new Poll();
            $poll->recursive = -1;

            $encuesta = $poll->find('first', array('conditions' => array('Poll.proyect_id' => $result['b']['id']), 'fields' => array('Poll.verificacion_fase_uno', 'Poll.visto_bueno', 'Poll.calificacion_caracteristicas_biofisicas', 'Poll.calificacion_sociales', 'Poll.calificacion_economicos', 'Poll.calificacion_ambientales',), 'order' => array('Poll.id DESC')));

            $calificacion_encuesta = '';

            if ($encuesta['Poll']['calificacion_caracteristicas_biofisicas'] == null or $encuesta['Poll']['calificacion_sociales'] == null
                    or $encuesta['Poll']['calificacion_economicos'] == null or $encuesta['Poll']['calificacion_ambientales'] == null or
                    $encuesta['Poll']['calificacion_caracteristicas_biofisicas'] == '' or $encuesta['Poll']['calificacion_sociales'] == ''
                    or $encuesta['Poll']['calificacion_economicos'] == '' or $encuesta['Poll']['calificacion_ambientales'] == ''
            ) {
                $calificacion_encuesta = 'No cumple';
            } else if ($encuesta['Poll']['verificacion_fase_uno'] == null or $encuesta['Poll']['visto_bueno'] == null or
                    $encuesta['Poll']['verificacion_fase_uno'] == 'Sin registro' or $encuesta['Poll']['visto_bueno'] == 'Sin registro') {
                $calificacion_encuesta = 'No cumple';
            } else if ($encuesta['Poll']['calificacion_caracteristicas_biofisicas'] == 'No cumple' or $encuesta['Poll']['calificacion_sociales'] == 'No cumple'
                    or $encuesta['Poll']['calificacion_economicos'] == 'No cumple' or $encuesta['Poll']['calificacion_ambientales'] == 'No cumple' or
                    $encuesta['Poll']['verificacion_fase_uno'] == 'No' or $encuesta['Poll']['visto_bueno'] == null
            ) {
                $calificacion_encuesta = 'No cumple';
            } else {
                $calificacion_encuesta = 'Cumple';
            }

            $viabilidad_integral = "Cumple";

            if ($criterios_evaluacion != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_aspectos_productivos'] != "Cumple" || $calificacion_avaluos != "Cumple" ||
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_sociales'] != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_aspectos_financieros'] != "Cumple" ||
                    $evaluacion['FinalEvaluation']['calificacion_aspectos_ambientales'] != "Cumple" || $evaluacion['FinalEvaluation']['calificacion_elegibilidad_integral'] != "Elegible" ||
                    $calificacionFinalControlCalidad != "CUMPLE" || $calificacion_encuesta != "Cumple" || $calificacion_planos != "Cumple" || $calificacionProyectoProductivo != "Cumple") {
                $viabilidad_integral = "No cumple";
            }

            $subsidio_notarial = $result['a']['familias_habilitadas'] * $result['e']['valor_smmv'];

            $publicado = "";
            if ($result['b']['publicado'] == 1) {
                $publicado = "SI";
            } else {
                $publicado = "NO";
            }

            $evaluado_incoder = "";
            if ($result['b']['evaluado_incoder'] == 1) {
                $evaluado_incoder = "SI";
            } else {
                $evaluado_incoder = "NO";
            }

            //armamos el nombre del archivo de la notificación de faseIIB.
            $archivoNotificacionExiste = "";
            $archivo = "../webroot/files/" . $result['b']['codigo'] . "/" . "NotificacionFaseIIB-" . $result['b']['codigo'] . "-" . $result['a']['id'] . ".pdf";
            //buscamos si el archivo existe.
            if (file_exists($archivo)) {
                $archivoNotificacionExiste = "Si";
            } else {
                $archivoNotificacionExiste = "No";
            }

            //armamos el nombre del archivo escaneado de la resolución de adjudicación
            $archivoResolucionExiste = "";
            $archivo = "../webroot/files/" . $result['b']['codigo'] . "/" . "SoporteResolucion-" . $result['b']['codigo'] . "-" . $resolucion_id . ".pdf";
            //buscamos si el archivo existe.
            if (file_exists($archivo)) {
                $archivoResolucionExiste = "Si";
            } else {
                $archivoResolucionExiste = "No";
            }

            $archivo = "";

            $row = array(
                $result['d']['nombre'],
                $result['d']['primer_apellido'],
                $result['b']['codigo'],
                number_format($areaTotalPlanosTopograficos, 4, ',', '.'),
                $result['a']['calificacion_anexos'],
                $result['a']['calificacion_ubicacion'],
                $result['a']['calificacion_area_util'],
                $result['a']['calificacion_claseV'],
                $result['a']['calificacion_suelos'],
                $result['a']['calificacion_suelos_total'],
                $result['a']['calificacion_mejoras_santuarias'],
                $evaluacion['FinalEvaluation']['calificacion_aspectos_productivos'],
                $evaluacion['FinalEvaluation']['calificacion_aspectos_sociales'],
                $evaluacion['FinalEvaluation']['calificacion_aspectos_financieros'],
                $evaluacion['FinalEvaluation']['calificacion_aspectos_ambientales'],
                //¿TIENE CONDICIONAMIENTOS?
                $tieneCondicionamientos,
                //condicionamientos
                $condicionamiento_hipoteca,
                $condicionamiento_afectacion,
                $condicionamiento_declaratoria,
                $condicionamiento_area,
                $condicionamiento_negociacion,
                $condicionamiento_cabida,
                $elegibilidad,
                $result['a']['calificacion_elegibilidad_integral'],
                //controles de calidad a los predios
                $calificacionFinalControlCalidad,
                $textoControlCalidad,
                //los que llevan a viabilidad integral
                $calificacion_avaluos,
                $calificacion_planos,
                $calificacionProyectoProductivo,
                $calificacion_encuesta,
                number_format($result['a']['subsidio_proyecto_real'], 2, ',', '.'),
                number_format($result['a']['subsidio_predios_real'], 2, ',', '.'),
                number_format($result['a']['familias_habilitadas'], 2, ',', '.'),
                number_format($subsidio_notarial, 2, ',', '.'),
                $viabilidad_integral,
                $publicado,
                $result['b']['fecha_publicacion'],
                $result['a']['tipo_proyecto'],
                $levantados,
                $revisionPredios,
                $evaluado_incoder,
                $numero_resolucion,
                $fecha_resolucion,
                $archivoNotificacionExiste,
                $archivoResolucionExiste,
                number_format($areaTotalPlanosTopograficos, 4, ',', '.'),
                number_format($areaProductiva, 4, ',', '.'),
                number_format($areaNoProductiva, 4, ',', '.'),
                number_format($contrapartida_proyecto, 2, ',', '.'),
                number_format($contrapartido_predio, 2, ',', '.')
            );

            $newRow = array();

            foreach ($row as $a) {
                $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
            }

            fputcsv($csv_file, $newRow, ';', '"');
        }

        fclose($csv_file);
    }

    function evaluation_report() {

        $this->layout = "csv";
        ini_set('max_execution_time', 600); //increase max_execution_time to 10 min if data set is very large
        //create a file
        $filename = "Evaluacion_final_" . date("Y.m.d") . ".csv";
        $csv_file = fopen('php://output', 'w');
        header('Content-type: application/csv');
        header('Content-Disposition: attachment; filename="' . $filename . '"');
        App::Import('model', 'Proyect');
        $Proyect = new Proyect();
        // "Codigo del proyecto","Dpto Ejecucion","Municipio de  Ejecucion","Evaluador" ,"Familias totales inscritas","Familias principales habilitadas","Familias suplentes habilitadas","No. Predios","Area Predio(s)Títulos","Area Predio(s) Plano","Área potencialmente utilizable","Area Bosques o Cobertura Vegetal","Valor predio(s) (avalúo)","Valor predio(s) (F 3)","Venta Parcial","Presenta la totalidad de anexos del formulario 8","Ubicación de los predios","Suelos","Mejoras No útiles o Suntuarias","","UAF","TIR","CABIDA  Minima","CABIDA  Maxima","Subsidio predio aprobado","Subsidio predio Maximo","Subsu ppx max","POR CABIDA FAMILIAR,POR AREA EN TITULOS,POR NEGOCIACIÓN,"Concepto Integral de Elegibilidad"
        $cabecera = array('Código', "Acta de panel", "Dpto Ejecución", "Municipio de  Ejecución", "Evaluador", "Familias totales inscritas", "Familias principales habilitadas", "Familias suplentes habilitadas", "No. Predios", "Área Predio(s) Títulos (suma del área ingreada en fase I a cada predio) ", "Área Predio(s) Plano (suma del área de plano ingresada  en fase IIB a cada predio)", "Área útil según plano", "Área Bosques o Cobertura Vegetal (plano)", "Área útil avalúo ", "Área no útil avalúo ", "Valor predio(s) (avalúo)", "Valor predio(s) (F 3) formulario 3 ingreasdo en fase I", 'Venta parcial', "Descripción del proyecto", "Lineas productívas (Evaluación final)", 'Formulario 8 calificación', 'Formulario 8 concepto', 'Concepto aspectos productivos', 'Concepto aspectos productivos', 'Calificación aspectos sociales', 'Concepto aspectos sociales', 'Calificación aspectos financieros', 'Concepto aspectos financieros', 'Calificación aspectos ambientales', 'Concepto aspectos ambientales', 'UAF', "TIR", "Subsidio máximo p productivo", "Subsidio máximo predios", 'Calificación elegibilidad integral', 'Concepto elegibilidad integral', 'Condicionamientos', 'Revisión', 'Publicado', 'Subsidio predios propuesto', 'Subsidio predios calculado', 'Subsidio proyecto propuesto', 'Subsidio proyecto calculado', 'Estado proyecto', 'Estado evaluación');

        $newRow = array();

        foreach ($cabecera as $a) {
            $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
        }

        fputcsv($csv_file, $newRow, ';', '"');
        $evaluaciones = $Proyect->Query('SELECT Convocatoria.smmv_proyecto,Convocatoria.valor_smmv,Convocatoria.smmv_predios,Departament.name,City.name,Proyect.codigo,Proyect.publicado,Proyect.predio_valor,Proyect.id,Proyect.estado,User.nombre,User.primer_apellido,FinalEvaluation.* 
            FROM proyects Proyect LEFT JOIN final_evaluations FinalEvaluation ON Proyect.id=FinalEvaluation.proyect_id 
            LEFT JOIN users User On User.id=FinalEvaluation.user_id 
            LEFT JOIN cities City On City.id=Proyect.city_id 
            LEFT JOIN departaments Departament On City.departament_id=Departament.id 
            LEFT JOIN calls Convocatoria On Convocatoria.id=Proyect.call_id 
            WHERE FinalEvaluation.id=(SELECT max(id) from final_evaluations WHERE proyect_id=Proyect.id )');
        foreach ($evaluaciones as $evaluacionfinal) {

            $acta = $Proyect->FormAct->find('first', array('recursive' => -1, 'conditions' => array('FormAct.proyect_id' => $evaluacionfinal['Proyect']['id']), 'fields' => array('FormAct.numero_acta')));

            $total_familias = $Proyect->Candidate->find('count', array('recursive' => -1, 'conditions' => array('Candidate.proyect_id' => $evaluacionfinal['Proyect']['id'], 'Candidate.candidate_id' => 0)));
            $total_principales = $Proyect->Candidate->find('count', array('recursive' => -1, 'conditions' => array('Candidate.proyect_id' => $evaluacionfinal['Proyect']['id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 1, 'Candidate.estado_filtro' => array(1, 5, 6))));
            $total_suplentes = $Proyect->Candidate->find('count', array('recursive' => -1, 'conditions' => array('Candidate.proyect_id' => $evaluacionfinal['Proyect']['id'], 'Candidate.candidate_id' => 0, 'Candidate.clase' => 2, 'Candidate.estado_filtro' => array(1, 5, 6))));
            $predios = $Proyect->Property->find('all', array('recursive' => -1, 'conditions' => array('Property.proyect_id' => $evaluacionfinal['Proyect']['id']), 'fields' => array('Property.nombre', 'Property.id', 'Property.area_negociacion', 'Property.area_titulo', 'Property.matricula')));
            $num_predios = count($predios);
            $area_titulo = 0;
            $area_plano = 0;
            $area_util = 0;
            $area_util_avaluo = 0;
            //Area bosque pendiente por deducir
            $area_bosques = 0;
            $area_avaluo = 0;
            $valor_avaluo = 0;
            $area_no_util_avaluo = 0;


            foreach ($predios as $predio) {
                $area_titulo+=floatval($predio['Property']['area_titulo']);
                $plano = $Proyect->Property->TopographicMap->find('first', array('conditions' => array('TopographicMap.property_id' => $predio['Property']['id']), 'fields' => array('TopographicMap.id', 'TopographicMap.area', 'TopographicMap.venta_parcial'), 'order' => array('TopographicMap.id DESC')));
                $area_plano = $plano['TopographicMap']['area'];

                $area = $Proyect->Property->TopographicMap->TopographicArea->find('first', array('conditions' => array('TopographicArea.topographic_map_id' => $plano['TopographicMap']['id'], 'AreaType.productiva' => 1), 'fields' => array('total')));
                $area_util = $area_util + $area['TopographicArea']['total'];

                $areab = $Proyect->Property->TopographicMap->TopographicArea->find('first', array('conditions' => array('TopographicArea.topographic_map_id' => $plano['TopographicMap']['id'], 'AreaType.id' => array(7, 12)), 'fields' => array('total')));
                $area_bosques = $area_bosques + $areab['TopographicArea']['total'];

                $avaluo = $Proyect->Property->EvaluationAppraisal->find('first', array('conditions' => array('EvaluationAppraisal.property_id' => $predio['Property']['id']), 'fields' => array('EvaluationAppraisal.id', 'EvaluationAppraisal.area', 'EvaluationAppraisal.valor'), 'order' => array('EvaluationAppraisal.id DESC')));
                $area_avaluo+=$avaluo['EvaluationAppraisal']['area'];
                $valor_avaluo+=$avaluo['EvaluationAppraisal']['valor'];
                $Proyect->Property->EvaluationAppraisal->EvaluationPhysiographicUnit->virtualFields = array('sumaArea' => 'SUM(EvaluationPhysiographicUnit.area)');

                $unidades = $Proyect->Property->EvaluationAppraisal->EvaluationPhysiographicUnit->find('first', array('conditions' => array('EvaluationPhysiographicUnit.util' => 'SI', 'EvaluationPhysiographicUnit.evaluation_appraisal_id' => $avaluo['EvaluationAppraisal']['id']), 'fields' => array('EvaluationPhysiographicUnit.sumaArea')));

                $area_util_avaluo+=$unidades['EvaluationPhysiographicUnit']['sumaArea'];
                $unidades = $Proyect->Property->EvaluationAppraisal->EvaluationPhysiographicUnit->find('first', array('conditions' => array('EvaluationPhysiographicUnit.util' => 'NO', 'EvaluationPhysiographicUnit.evaluation_appraisal_id' => $avaluo['EvaluationAppraisal']['id']), 'fields' => array('EvaluationPhysiographicUnit.sumaArea')));
                $area_no_util_avaluo+=$unidades['EvaluationPhysiographicUnit']['sumaArea'];
            }

            $fila = array($evaluacionfinal['Proyect']['codigo'], $acta['FormAct']['numero_acta'], $evaluacionfinal['Departament']['name'], $evaluacionfinal['City']['name'], $evaluacionfinal['User']['nombre'] . " " . $evaluacionfinal['User']['primer_apellido'], $total_familias, $total_principales, $total_suplentes, $num_predios, number_format($area_titulo, 4, ',', '.'), number_format($area_plano, 4, ',', '.'), number_format($area_util, 4, ',', '.'), number_format($area_bosques, 4, ',', '.'), number_format($area_util_avaluo, 4, ',', '.'), number_format($area_no_util_avaluo, 4, ',', '.'), $valor_avaluo, $evaluacionfinal['Proyect']['predio_valor'], $plano['TopographicMap']['venta_parcial']);
            //DESDE ACA VAN LOS CAMPOS DE LA EVALUACION INICIAL 
            //$evaluacionfinal = $Proyect->FinalEvaluation->find('first', array('recursive' => -1, 'conditions' => array('FinalEvaluation.proyect_id' => $inicial['Proyect']['id'])));
            //LINEAS PRODUCTIVAS EVALUACION FINAL
            //Lineas productivas de evaluaion inicial
            App::Import('model', 'FinalProductiveLine');
            $FinalProductiveLine = new FinalProductiveLine();
            $lineas = $FinalProductiveLine->find('all', array('fields' => array('ProductiveActivity.nombre'), 'conditions' => array('FinalProductiveLine.final_evaluation_id' => $evaluacionfinal['FinalEvaluation']["id"])));
            $strLineas = "";
            foreach ($lineas as $linea) {
                $strLineas = $linea['ProductiveActivity']['nombre'] . " ";
            }

            $fila[] = $evaluacionfinal['FinalEvaluation']['nombre_proyecto'];
            $fila[] = $strLineas;
            $revision = "";
            if ($evaluacionfinal['FinalEvaluation']['calificacion_anexos'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_anexos'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_anexos'];

            if ($evaluacionfinal['FinalEvaluation']['calificacion_aspectos_productivos'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_aspectos_productivos'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_aspectos_productivos'];

            if ($evaluacionfinal['FinalEvaluation']['calificacion_aspectos_sociales'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_aspectos_sociales'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_aspectos_sociales'];

            if ($evaluacionfinal['FinalEvaluation']['calificacion_aspectos_financieros'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_aspectos_financieros'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_aspectos_financieros'];


            if ($evaluacionfinal['FinalEvaluation']['calificacion_aspectos_ambientales'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_aspectos_ambientales'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_aspectos_ambientales'];

            //Subsidios 

            $subsido_maximo_proyecto = $evaluacionfinal['Convocatoria']['smmv_proyecto'] * $evaluacionfinal['Convocatoria']['valor_smmv'];
            $subsido_maximo_predios = $evaluacionfinal['Convocatoria']['smmv_predios'] * $evaluacionfinal['Convocatoria']['valor_smmv'];

            $familias_habilitadas = $evaluacionfinal['FinalEvaluation']['familias_habilitadas'];
            $uaf = 0;
            if ($familias_habilitadas == 0) {
                $uaf = 0;
            } else {

                $uaf = ($area_plano) / $familias_habilitadas;
            }
            $fila[] = $uaf;
            $fila[] = $evaluacionfinal['FinalEvaluation']['tir'];
            $fila[] = $subsido_maximo_proyecto;
            $fila[] = $subsido_maximo_predios;
            if ($evaluacionfinal['FinalEvaluation']['calificacion_elegibilidad_integral'] == "Sin registro") {
                $revision = "Revisar";
            }
            $fila[] = $evaluacionfinal['FinalEvaluation']['calificacion_elegibilidad_integral'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['concepto_elegibilidad_integral'];
            $this->FinalEvaluation->EvaluationConstraint->unBindModel(array('belongsTo' => array('FinalEvaluation')));
            $condicionamientos = $this->FinalEvaluation->EvaluationConstraint->find('all', array('conditions' => array('EvaluationConstraint.final_evaluation_id' => $evaluacionfinal['FinalEvaluation']['id']), 'fields' => array('Constraint.nombre', 'EvaluationConstraint.descripcion')));
            $str = "";
            foreach ($condicionamientos as $condicionamiento) {
                $str.=$condicionamiento['Constraint']['nombre'] . ": " . $condicionamiento['EvaluationConstraint']['descripcion'] . "\n";
            }
            $fila[] = $str;
            $fila[] = $revision;
            $pb = "";
            switch ($evaluacionfinal['Proyect']['publicado']) {
                case 1:
                    $pb = "SI";
                    break;

                default:
                    $pb = "NO";
                    break;
            }
            $fila[] = $pb;
            $fila[] = $evaluacionfinal['FinalEvaluation']['subsidio_predios_propuesto'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['subsidio_predios_real'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['subsidio_proyecto_propuesto'];
            $fila[] = $evaluacionfinal['FinalEvaluation']['subsidio_proyecto_real'];
            $estado_ev = "Abierto";
            $estado_pr = "Abierto";
            if ($evaluacionfinal['FinalEvaluation']['cerrado'] == 1) {
                $estado_ev = "Cerrado";
            }
            if ($evaluacionfinal['Proyect']['estado'] == 1) {
                $estado_pr = "Cerrado";
            }
            $fila[] = $estado_ev;
            $fila[] = $estado_pr;




            $newRow = array();

            foreach ($fila as $a) {
                $newRow[] = iconv('UTF-8', 'Windows-1252', $a);
            }

            fputcsv($csv_file, $newRow, ';', '"');
        }
        fclose($csv_file);
    }

    function open($evaluation_id, $proyect_id) {
        $this->layout = "ajax";
        // $this->EvaluationAppraisal->id=$appraisal_id;
        //echo $this->EvaluationAppraisal->saveField('cerrado', 0, array('id' => $appraisal_id))."XXXXX";


        if ($this->FinalEvaluation->saveField('cerrado', 0, array('id' => $evaluation_id))) {
            $this->Session->setFlash('Registro abierto para edición', 'flash_custom');
            $this->redirect(array('Controller' => 'FinalEvaluations', 'action' => 'index', $proyect_id));
        } else {
            $this->Session->setFlash('No se pudo abrir el registro', 'flash_custom');
            $this->redirect(array('Controller' => 'FinalEvaluations', 'action' => 'index', $proyect_id));
        }
    }

    function close($evaluation_id, $proyect_id) {
        $this->layout = "ajax";
        //$this->TopographicMap->id=$map_id;
        if ($this->FinalEvaluation->saveField("cerrado", 1, array('FinalEvaluation.id' => $evaluation_id))) {
            $this->Session->setFlash('Registro cerrado para edición', 'flash_custom');
            $this->redirect(array('Controller' => 'FinalEvaluations', 'action' => 'index', $proyect_id));
        } else {
            $this->Session->setFlash('No se pudo cerrar el registro', 'flash_custom');
            $this->redirect(array('Controller' => 'FinalEvaluations', 'action' => 'index', $proyect_id));
        }
    }

    function upload_notification($evaluation_id) {
        $this->layout = "ajax";
        $this->set('evaluation_id', $evaluation_id);
        if (!empty($this->data)) {

            $codigo = $this->Session->read('cod');
            $rutaArchivo = "../webroot/files/$codigo";

            if (!is_dir($rutaArchivo)) {

                if (!mkdir($rutaArchivo)) {
                    echo "error creando archivo";
                    //redirect
                }
            }
            $nombreArchivo = "NotificacionFaseIIB-$codigo-$evaluation_id.pdf";
            $rutaArchivo.= "/" . $nombreArchivo;
            if (move_uploaded_file($this->data['FinalEvaluation']['archivo']['tmp_name'], $rutaArchivo)) {
                //$this->FinalEvaluation->id = $evaluation_id;
                $this->FinalEvaluation->saveField('archivo_notificacion', $nombreArchivo, array('FinalEvaluation.id' => $evaluation_id));
                $this->Session->setFlash('Registro Adicionado correctamente con archivo');
                $this->redirect(array('controller' => 'FinalEvaluations', 'action' => 'index'));
            }
        }
    }

}

?>